﻿using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;

namespace iToolPlugin.SMSProvider
{
    public class SmsSingleSenderResult : SmsResultBase
    {
        public int result;

        public string errMsg;

        public string ext;

        public string sid;

        public int fee;

        public SmsSingleSenderResult()
        {
            errMsg = "";
            ext = "";
            sid = "";
            fee = 0;
        }

        public override void parseFromHTTPResponse(HTTPResponse response)
        {
            JObject jObject = parseToJson(response);
            try
            {
                result = jObject.GetValue("result").Value<int>();
#pragma warning disable CS8601 // 引用类型赋值可能为 null。
                errMsg = jObject.GetValue("errmsg").Value<string>();
#pragma warning restore CS8601 // 引用类型赋值可能为 null。
            }
            catch (ArgumentNullException ex)
            {
                throw new JsonException($"res: {response.body}, exception: {ex.Message}");
            }

            if (jObject["ext"] != null)
            {
#pragma warning disable CS8601 // 引用类型赋值可能为 null。
                ext = jObject.GetValue("ext").Value<string>();
#pragma warning restore CS8601 // 引用类型赋值可能为 null。
            }

            if (jObject["sid"] != null)
            {
#pragma warning disable CS8601 // 引用类型赋值可能为 null。
                sid = jObject.GetValue("sid").Value<string>();
#pragma warning restore CS8601 // 引用类型赋值可能为 null。
            }

            if (jObject["fee"] != null)
            {
                fee = jObject.GetValue("fee").Value<int>();
            }
        }
    }
}
